In [1]:
import numpy as np
import pandas as pd
%matplotlib inline
In [2]:
df1 = pd.read_csv('../data/df1',index_col=0)
df2 = pd.read_csv('../data/df2')
Matplotlib tiene Hojas de estilo que se pueden utilizar para crear graficas. Estas hojas de estilo incluyen plot_bmh, plot_fivethirtyeight, plot_ggplot y mas. Basicamente crean distintas reglas de estilo que se pueden aplicar facilmente.
Antes de utilizar plt.style.use() tus graficas se pueden ver como la siguiente:
In [3]:
df1['A'].hist()
Out[3]:
Utilizando estilos:
In [4]:
import matplotlib.pyplot as plt
plt.style.use('ggplot')
Ahora tu grafica se visulizara de la siguiente manera:
In [5]:
df1['A'].hist()
Out[5]:
In [6]:
plt.style.use('bmh')
df1['A'].hist()
Out[6]:
In [7]:
plt.style.use('dark_background')
df1['A'].hist()
Out[7]:
In [8]:
plt.style.use('fivethirtyeight')
df1['A'].hist()
Out[8]:
In [9]:
plt.style.use('ggplot')
Por lo pronto utilizaremos el estilo ggplot
Existen varios tipos de graficas que se integran en pandas, la mayoria de ellas para demostrar datos estadisticos:
A su vez puedes mandar llamar df.plot(kind='hist') o remplazar el argumento de kind
por cualquiera de la siguientes claves (ej. 'box','barh', etc..)
In [10]:
df2.plot.area(alpha=0.4)
Out[10]:
In [14]:
df2.head()
Out[14]:
In [12]:
df2.plot.bar()
Out[12]:
In [13]:
df2.plot.bar(stacked=True)
Out[13]:
In [82]:
df1['A'].plot.hist(bins=50)
Out[82]:
In [15]:
df1.plot.line(x=df1.index,y='B',figsize=(12,3),lw=1)
Out[15]:
In [16]:
df1.plot.scatter(x='A',y='B')
Out[16]:
Se puede utilizar c
para cambiar el color a desplegar y cmap
para modificar el rango de colores a desplegar
Para consultar todos los rangos de colores puedes consultar: http://matplotlib.org/users/colormaps.html
In [17]:
df1.plot.scatter(x='A',y='B',c='C',cmap='coolwarm')
Out[17]:
Tambien se puede utilizar s
para indicar el tamanio de alguna otra columna. El parametro s
debe de ser un arreglo y no solo el nombre de la columna:
In [23]:
df1.plot.scatter(x='A',y='B',s=df1['C']*100)
Out[23]:
In [32]:
df2.plot.box() # Tambien puedes incluir el argumento by= para agrupar la informacion
Out[32]:
In [33]:
df = pd.DataFrame(np.random.randn(1000, 2), columns=['a', 'b'])
df.plot.hexbin(x='a',y='b',gridsize=25,cmap='Oranges')
Out[33]:
In [34]:
df2['a'].plot.kde()
Out[34]:
In [35]:
df2.plot.density()
Out[35]: